package com.rybbaby.tss.platform.sysEmailLog.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @description 邮件记录
 *
 * @author 谢进伟
 *
 * @createDate 2016-11-23 下午11:07:52
 */
@Entity
@Table(name = "sys_email_log")
@DynamicUpdate(true)
@DynamicInsert(true)
public class SysEmailLog implements Serializable {

	private static final long serialVersionUID = 52780164338735L;

	/** 主键 **/
	private String id;
	/** 标题 **/
	private String title;
	/** 发件箱 **/
	private String fromMail;
	/** 收件箱 **/
	private String toMail;
	/** 内容 **/
	private String content;
	/** 创建时间 **/
	private java.sql.Timestamp createTime;
	/** 发送时间 **/
	private java.sql.Timestamp sendTime;
	/** 重发次数 **/
	private Integer reSendCount;
	/** 重发时间 **/
	private java.sql.Timestamp resendTime;
	/** 发件人 **/
	private String sender;
	/** 状态(1:待发送，2：已发送，3：发送失败，4：重发成功，5：重发失败) **/
	private Integer status;
	/** 是否重发 **/
	private Boolean isResend;
	/** 版本 **/
	private Integer version;

	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "sys_email_logIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "sys_email_logIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public String getId() {
		return this.id;
	}

	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 方法: 取得标题
	 *
	 * @return java.lang.String 标题
	 */
	@Column(name = "title", nullable= true, length = 100)
	public String getTitle() {
		return this.title;
	}

	/**
	 * 方法: 设置标题
	 *
	 * @param title 标题
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * 方法: 取得发件箱
	 *
	 * @return java.lang.String 发件箱
	 */
	@Column(name = "fromMail", nullable= true, length = 50)
	public String getFromMail() {
		return this.fromMail;
	}

	/**
	 * 方法: 设置发件箱
	 *
	 * @param fromMail 发件箱
	 */
	public void setFromMail(String fromMail) {
		this.fromMail = fromMail;
	}

	/**
	 * 方法: 取得收件箱
	 *
	 * @return java.lang.String 收件箱
	 */
	@Column(name = "toMail", nullable= true, length = 50)
	public String getToMail() {
		return this.toMail;
	}

	/**
	 * 方法: 设置收件箱
	 *
	 * @param toMail 收件箱
	 */
	public void setToMail(String toMail) {
		this.toMail = toMail;
	}

	/**
	 * 方法: 取得内容
	 *
	 * @return java.lang.String 内容
	 */
	@Column(name = "content", nullable= true, length = 21845)
	public String getContent() {
		return this.content;
	}

	/**
	 * 方法: 设置内容
	 *
	 * @param content 内容
	 */
	public void setContent(String content) {
		this.content = content;
	}

	/**
	 * 方法: 取得创建时间
	 *
	 * @return java.sql.Timestamp 创建时间
	 */
	@Column(name = "createTime", nullable= true, length = 19)
	public java.sql.Timestamp getCreateTime() {
		return this.createTime;
	}

	/**
	 * 方法: 设置创建时间
	 *
	 * @param createTime 创建时间
	 */
	public void setCreateTime(java.sql.Timestamp createTime) {
		this.createTime = createTime;
	}

	/**
	 * 方法: 取得发送时间
	 *
	 * @return java.sql.Timestamp 发送时间
	 */
	@Column(name = "sendTime", nullable= true, length = 19)
	public java.sql.Timestamp getSendTime() {
		return this.sendTime;
	}

	public Integer getReSendCount() {
		return reSendCount;
	}

	public void setReSendCount(Integer reSendCount) {
		this.reSendCount = reSendCount;
	}

	/**
	 * 方法: 设置发送时间
	 *
	 * @param sendTime 发送时间
	 */
	public void setSendTime(java.sql.Timestamp sendTime) {
		this.sendTime = sendTime;
	}

	/**
	 * 方法: 取得重发时间
	 *
	 * @return java.sql.Timestamp 重发时间
	 */
	@Column(name = "resendTime", nullable= true, length = 19)
	public java.sql.Timestamp getResendTime() {
		return this.resendTime;
	}

	/**
	 * 方法: 设置重发时间
	 *
	 * @param resendTime 重发时间
	 */
	public void setResendTime(java.sql.Timestamp resendTime) {
		this.resendTime = resendTime;
	}

	/**
	 * 方法: 取得发件人
	 *
	 * @return java.lang.String 发件人
	 */
	@Column(name = "sender", nullable= true, length = 12)
	public String getSender() {
		return this.sender;
	}

	/**
	 * 方法: 设置发件人
	 *
	 * @param sender 发件人
	 */
	public void setSender(String sender) {
		this.sender = sender;
	}

	/**
	 * 方法: 取得状态
	 *
	 * @return java.lang.Integer 状态
	 */
	@Column(name = "status", nullable= true, length = 11)
	public Integer getStatus() {
		return this.status;
	}

	/**
	 * 方法: 设置状态
	 *
	 * @param status 状态
	 */
	public void setStatus(Integer status) {
		this.status = status;
	}

	/**
	 * 方法: 取得是否重发
	 *
	 * @return java.lang.Boolean 是否重发
	 */
	@Column(name = "isResend", nullable= true, length = 1)
	public Boolean getIsResend() {
		return this.isResend;
	}

	/**
	 * 方法: 设置是否重发
	 *
	 * @param isResend 是否重发
	 */
	public void setIsResend(Boolean isResend) {
		this.isResend = isResend;
	}

	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
	@Version
	@Column(name = "version", nullable= true, length = 11)
	public Integer getVersion() {
		return this.version;
	}

	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}
}